Token Merging
https://research.facebook.com/blog/2023/2/token-merging-your-vit-but-faster/
https://arxiv.org/abs/2210.09461Token Merging: Your ViT But Faster
Meta AI は、追加のトレーニングを必要とせずに既存の Vision Transformer (ViT) モデルのレイテンシを短縮するための新しい研究を共有しています。 Token Merging (ToMe) と呼ばれる私たちのアプローチは、同様のトークンを組み合わせて、情報を失うことなく計算を削減します。私たちのアルゴリズムは軽量で、有害なオーバーヘッドなしで各レイヤーのトークンをマージできます。 ToMe は、ImageNet 1K (画像)、K400 (ビデオ)、AudioSet-2M (オーディオ) など、さまざまなドメインの主要なデータセットで評価されており、精度の低下を最小限に抑えて推論スループットを 2 ~ 3 倍向上させることがわかっています。研究コミュニティがこれらの進歩を再現して構築できるようにするために、ToMe コードとベンチマークをリリースしました。
https://arxiv.org/abs/2303.17604Token Merging for Fast Stable Diffusion
Token MergingによるStable Diffusionの高速化https://note.com/gcem156/n/n948b7a06dbfe
GitHub - dbolya/tomesd: Speed up Stable Diffusion with this one simple trick!
ComfyUIはデフォルトでTomePathchModelノードがあるので試すnomadoor.icon
設定はアスカチェック、モデルはACertainModel
table:tome
px 10枚生成 ToMe=0.5 x倍高速
512 85.36 79.24 1.08
768 175.78 151.89 1.16
1024 320.54 291.12 1.10
2048 2074.57 1503.11 1.38
2048が異常に遅いのはVAEデコードでout of memoryになり、tiled VAEに切り替えられているため
他の部分の最適化が進んでいるので、ToMeを使ってもいうほど速くなるわけではない
xformersと相性が良いらしいので、pytorch 2.0だと効果が出ないのかも
解像度が高いほうが効果が出る(上の表だと出てないけど)ので、Hires.fixの後半部分に使うのはいいかも